/* 列表mixin */
export const listMixin = {
  data() {
    return {
      // 分页
      paging: {
        page: 1,
        page_size: 20, // 每页条数
        total: 0, // 总条数
        pager_count: 10
      },
      isFirst: false,
      defaultQuery: {}, // 重置查询参数
      listQuery: {}, // 查询参数
      tableData: [] // 列表数据
    }
  },
  created() {
    this.defaultQuery = this.listQuery
  },
  methods: {
    /* 获取列表数据 */
    getTableData(listQuery = {}) {
      this.listQuery = listQuery
      this.getList()
    },
    /* 切换页码，更新数据 */
    handleCurrentChange(paging) {
      Object.assign(this.paging, paging)
      this.getList()
    },
    /* 获取列表数据 */
    async getList() {
      Object.assign(this.listQuery, this.paging)
      const { data: { datalist, datacount }} = await this.ajaxRequest(this.handleQueryData(this.listQuery))
      this.tableData = datalist
      this.paging.total = +datacount
    },
    /* 如果涉及高级查询或者其他 需要手动处理一下数据 */
    handleQueryData(listQuery) {
      return listQuery
    },
    /* 重置 */
    reset() {
      this.$refs.currencyForm.returnDisplay(this.defaultQuery)
    }
  }
}
